perm filename 5[GEM,BGB] blob sn#030959 filedate 1973-03-25 generic text, type T, neo UTF8
00100	V - VERTEX BODY CREATION.
00200	
00300		This command creates a polyhedron consisting  of  one  vertex
00400	and  one  face.  The  vertex  is  placed  at the world origin.
00500	The V command takes no arguments and leaves  the  new  body,
00600	face and vertex on the stack with the vertex on top.
00700	
00800	
00900	E - EDGE AND VERTEX CREATION.
01000	
01100		This command creates a new edge and  a  new  vertex  starting
01200	from  an  old  vertex.  The E command requires two arguments, the top
01300	argument is the old vertex and the second argument must be one of the
01400	faces  to  which  the vertex belongs.  The new edge and vertex become
01500	associated with the given face.
01600	
01700	
01800	J - JOIN OLD VERTICES  -  FACE AND EDGE CREATION.
01900	
02000		This  command  creates  a  new  face  and  a new edge.  The J
02100	command has two forms.  The general form of the J command expects two
02200	vertices  of  the same face to be given on the top of the pdl, and it
02300	returns in their place a new edge and a new face  with  the  edge  on
02400	top.
02500		The wire form of the J command applies only to  a  face  that
02600	doesn't  have  a  closed perimeter.
02700	The wire J
02800	command returns the other end of the  wire  in  top  and  leaves  the
02900	second argument unchanged.
03000	
03100	
03200	G - GLUE TWO FACES TOGETHER.
03300	
03400		This  command  takes  two  faces from the top of the pdl. The
03500	faces must be nearly coincidant and of opposite orientation. The  two
03600	faces  are  deleted  along  with all the edges and vertices of one of
03700	them.  If there were two bodies, then one remains. A  body  glued  to
03800	itself  forms  a  hole.
     

00100	K - KILL.
00200	
00300		This  command  takes  the  top body, face, edge or vertex and
00400	deletes all parts of the body to which it belongs.  The  camera  body
00500	and NIL will not be deleted.
00600	
00700	
00800	S - SWEEP.
00900	
01000		This  command  sweeps  a  face into either a sheet or a solid
01100	depending on the NCNT. If the NCNT is zero, then SWEEP returns a  new
01200	face  coincident with the given face and connected to it by new sweep
01300	edges and rectangular sweep faces forming a prism.  Furthermore, a  β
01400	sweep  forms a pyramid on the given face and returns the peak vertex,
01500	while α sweep and ε sweep form antiprisms. An antiprism is  merely  a
01600	prism with the rectangular sweep faces split into triangles.
01700		When the NCNT is non-zero, only the first NCNT edges  of  the
01800	argument  face's  perimeter are swept into new faces.   Thus NCNT new
01900	faces are created and the argument face  is  returned  somewhat  more
02000	complicated  than  before. See the SPHERE example to clarify sweeping
02100	out a solid of rotation.
02200	
02300	
02400	R - Rotational Solid Completion.
02500	
02600		After  a  wire  has  been  swept  around, you have a shell of
02700	rotation.  To change a shell into a solid all that remains to be done
02800	is  do  a series of J commands on the leading and lagging vertices of
02900	the shell. The R command, using the NCNT  to  step  around  the  pole
03000	caps, calls the J-command for all the necessary pairs. The sweep face
03100	is taken as an argument and nothing is returned.
03200	
03300	
03400	M - MIDPOINT.
03500	
03600		This  command  takes an edge argument and creating a new edge
03700	and a new vertex makes the appropriate modifications to the body  and
03800	returns a the midpoint vertex of the given edge.
     

00100	The  Euclidean  geometric  transformations are translation, rotation,
00200	dilation and reflection; these  transformations  do  not  affect  the
00300	topology of faces, edges and vertices. The Top of the scratch pad pdl
00400	is transformed by hitting one of the  following  Euclidean  transform
00500	characters:
00600	
00700	  :	Transform in the positive direction wrt the X-axis.	
00800	  ;	Transform in the negative direction wrt the X-axis.
00900	  )	Transform in the positive direction wrt the Y-axis.
01000	  (	Transform in the negative direction wrt the Y-axis.
01100	  *	Transform in the positive direction wrt the Z-axis.
01200	  -	Transform in the negative direction wrt the Z-axis.
01300	
01400	Clearly these characters are not mnemonics, they were chosen  because
01500	they do not require the TOP key and are conveniently grouped in pairs
01600	under one's right hand.
01700	
01800	The Transform is selected by keying the control bits or or  prefixing
01900	the  command  with a control key character of suffering a preselected
02000	default Transform:
02100	
02200			default  -  usually TRANSLATION.
02300	α      		ROTATION.
02400	β		DILATION.
02500	ε	 	REFLECTION.
02600	
02700	
02800	The Euclidean Transformation default selection characters are:
02900	
03000	!		TRANSLATION.
03100	@		ROTATION.
03200	=		DILATION.
03300	∃		REFLECTION.
     

00100	Euclidean Transformations.
00200	
00300		Translation  moves  the Top object in the direction specified
00400	by one unit of translation strength.  Similairly Rotation rotates the
00500	Top object about the axis specified by one unit of rotational strength.
00600	Positive Rotations are ccw and negative rotations are cw.
00700	
00800		Dilations refer to a  three  state  dilation  axis  selector.
00900	Dilation  state  1  causes  dilation  on the specified axis, dilation
01000	state 2 causes dilation on the two axes not indicated,  and  dilation
01100	state  3  causes  dilation  on  all the axis indicated.  The dilation
01200	selector is advanced by typing the letter A, Advance  Axis  Selector.
01300	The  state of the dilation axis selector is displayed as a digit 1, 2
01400	or 3 just to the right of the dilation strength's per  cent  sign  in
01500	the editor status display at the upper right of the III screen.
01600	
01700		And  finally,  Reflections act only on the axis specified and
01800	always in the world frae of reference.  I have found little  use  for
01900	reflections and consquently their power has atrophied.
     

00100	COMMANDS  -  GROUP 3  -  continued.
00200	
00300	Strength of Transformation
00400	
00500	The strength of a Euclidean Transformation can be halved or
00600	doubled by keying the Transform's control bits and by striking
00700	a left or right square bracket respectively.
00800	
00900		/	Halve a Transformation Strength.
01000		\	Double a Transformation Strength.
01100	
01200	The strength of a Euclidean Transformation can be set by keying the
01300	Transform's control bits and by striking a digit from 0 to 9.
01400	
01500	For Translation:
01600		0	1/16 of a foot,  A "binary inch".
01700		4	One Foot.
01800		9	32 Feet.
01900		N	Where 0 ≤ N ≤ 9 yield 2.0↑(N-4) feet,
02000			but you only need to memorize the 0,4,9 in
02100			order to keep your head straight.
02200	For Rotation:
02300		9	π/2
02400		8	π/4
02500		   etc
02600	For Dilation:
02700		0	100%
02800		1	10%
02900		2	20%
03000		   etc
03100		9	90%
     

00100	COMMANDS  -  GROUP 3  -  continued.
00200	
00300	Setting the Strengths
00400	
00500		The strengths of the Euclidean Transformations can be entered
00600	numerically by typing λ,π or % followed by a numerical argument.   In
00700	command formats given below x & y are scanned as real numbers,  while
00800	n,  m,  d & s are scanned as integers. Integers can be typed in place
00900	of reals with no ill affect, whereas reals  typed  for  integers  are
01000	Fixed.
01100	
01200	For Translation:
01300		λx	feet.		Initially set to 1 foot.
01400		λx'	feet.
01500		λx'y"	feet and inches.
01600		λy"	inches.
01700	For Rotation:
01800		π/m	pi fraction.	Initially set to π/4.
01900		πn/m	pi fraction.
02000		πx	radians.
02100		πd,m,s	degrees, minutes, seconds of arc.
02200	For Dilation:
02300		%x	0.01 ≤ x ≤ 100.00.  Divisions by zero are shunned.
02400			Initial set to 75%
02500	
     

00100	STACK COMMANDS
00200	
00300	"↔"	Swap 1st and 2nd.
00400	"α↔"	Swap 1st and 3nd.
00500	"β↔"	Swap 1st and Last.
00600	"ε↔"	Swap 2nd and 3rd.
00700	
00800	"↓"	copy push down.
00900	"α↓"	rotate down.
01000	
01100	"↑"	pop off.
01200	"α↑"	rotate up.
     

00100	SUMMARY OF SWITCHES
00200	
00300	switch		commentary
00400	
00500	
00600	Q - FRMORG
00700		FRMORG affects world frame rotations.
00800		TRUE *		rotation about a world axis,
00900				thru the world origin.
01000		FALSE		rotation about a parallel to a world axis,
01100				thru the body origin.
01200		FRMORG is flipped by the Q-command.
01300		The state of FRMORG is indicated by an asterisked in the
01400		Editor's Status Display.  The asterisk is present when
01500		FRMORG is true and absent when FRMORG is false.
01600	
01700	F - FRAME
01800		FRAME is a three state switch that affects translation,
01900		rotation and dilation.
02000		state-1	indicates World Frame of Reference.
02100		state-2	indicates Body  Frame of Reference.
02200		state-3	indicates Relative Frame of Reference.
02300		FRAME is incremented, modulo 3, by the F-command.
02400	
02500	A - AXECNT
02600		AXECNT affects  only dilations.
02700		state-1 indicates dilation only on the specified axis.
02800		state-2 indicates dilation on the two axes not specified.
02900		state-3 indicates dilation on all three axes.
03000		The state of dilation is indicated by a digit to the right of
03100		the dilation strength's percent sign in the GEOMED Status Display.
03200		AXECNT is incremented, modulo 3, by the A-command.
03300